一、系统概述
通过AI技术实现车辆登船记录的自动化、智能化管理,利用高精度车牌识别、实时状态监测和数据分析,提升船舶调度效率,降低人工成本。系统支持高可靠性、可扩展性和复杂环境适应性。
二、系统架构设计


1. 硬件配置
车牌识别摄像头:
- 型号:预算足的话最好400万像素以上工业摄像头,配备夜间红外补光。
- 部署位置:船舱出入口,2-5米高度,俯拍车辆/平视车辆。
- 防护等级:IP67,适应码头潮湿、盐雾环境。
- 数量:每个泊位口部署四台摄像机,两台监控入场车辆,两台监控出场车辆
处理终端:
- 工控机:8核,32G内存以上。
- 存储:512G以上磁盘空间。
- 系统:Windows/Linux均可。
- 数量:2台,一台主设备,另一台做备用机
通讯模块:
- 连接方式:网线连接,基于TCP/IP协议,支持4G/5G备份链路。
- 带宽需求:≥10Mbps,确保数据实时传输 。
设备控制箱:
- 防护等级:IP66,内置温控系统,防潮、防尘。
- 集成设备:工控机、交换机及NVR(网络视频录像机)。
- 可选配置:配备UPS(≥30分钟续航),防止突然断电。
2. 软件架构
车牌识别模块:
- 技术栈:Python + OpenCV + PyTorch。
- AI模型:YOLOv11(目标检测)+ CRNN(字符识别)/PaddleOCR,具体可能在做的过程中比较效果。
- 功能:实时解析摄像头画面,提取车牌号,识别准确率目标>99%。
车辆登船记录、数据管理、报表生成模块:
- 数据库:Postgres。
- 技术:Flask,Pandas + OpenPyXL。
- 功能:记录车辆进出时间、状态,生成历史记录,生成Excel/CSV格式报表,包含车牌号、登船/退出时间、状态等,支持异常高亮。
三、AI功能实现
1. 技术方案
模型选择:
- 目标检测:YOLOv11,检测车牌区域,适合实时场景。
- 字符识别:CRNN + CTC Loss/PaddleOCR,处理车牌。
- 数据增强:旋转、模糊、亮度调整,提升模型鲁棒性。
训练与优化:
- 数据集:乙方采集码头实际场景数据(≥1万张标注图像),包含污损、遮挡、夜间等场景。甲方等待摄像头安装完成,配合找一些车辆进出采集数据,乙方使用Labelling标注车牌位置及字符。
- 迁移学习:基于预训练模型微调,缩短训练周期。
智能校验:
- 规则过滤:校验车牌格式(如长度、字符规则)。
- 异常处理:污损/遮挡车牌时,触发人工补录接口。
2. 功能实现
基础功能:
- 实时车牌识别:捕捉车辆进出画面,提取车牌号。
- 状态判定:基于车辆轨迹(通过多帧分析),判断登船/退出状态。
- 数据记录:存储车牌号、时间、状态,生成自动化报表。
扩展功能:
- 智能预警:车辆停留超过一定时间或者车辆异常进出将会提出预警。
- 数据分析:统计登船高峰时段、异常频率,生成可视化图表(使用Matplotlib/Seaborn)。
- 多功能扩展:提供API查询车辆进出状态,供后续开发集成。
四、外部接口、内部模块 交互
1. 工控机和上位机接口定义
-
协议类型:HTTP,POST请求
-
需要确保工控机和上位机在同一网段
-
登船json
-
其中
request里面字段:servicecode:WebApi_Vehicle_Onboard_Offboard_Status, 表示车辆登船状态(定义里面说只能有10位长度,但是其他案例有很长的例子,所以我取这个,如果不合适,可以跟我方反馈,我放修改)appid需要甲方提供(表示应用名称)reqid由每次调用我方生成- 加密
key:需要由甲方提供,由此生成signdata,
-
param:-
berthCode: 泊位code,需要和甲方保持一致,可以甲方提供给我们,- 目前我们设置为: "1A" - "16A"
-
timestamp: 时间戳 -
type: 登船,还是离船- "onboard":登船
- "offboard": 离船
-
status:- 1表示在正确的泊位
- 0表示不在正确的泊位
-
time: 时间戳,UTC+8(北京时间)
-
-
{
"request": {
"appid": "AH856BDC-9F3E-487E-671D-C84DEA45EB24",
"reqid": "B683DA45-D4C3-45DB-AB60-8DEEECB6DE10",
"protover": "1.0",
"servicever": "1.0",
"requesttime": "20250606142930276",
"reserve": "",
"servicecode": "WebApi_Vehicle_Onboard_Offboard_Status",
"signdata": "556EDDE1D05C3ABA63535D57A0A68F1D"
},
"param": {
"berthCode": "1A",
"vehicleNo": "粤B·CD456",
"status": "1",
"type": "onboard",
"time": "20250606142930276"
}
}
2. 双工控机主从切换模块
-
主要架构
-
双节点架构:NodeA + NodeB
-
工作模式:
-
主节点:执行核心业务
-
备用节点:实时监控+热备数据
-
-
切换方式:自动故障切换 + 手动强制切换
-
-
核心技术
-
心跳检测:UDP广播 + 自定义协议(1s/次)
-
故障判定:连续3次心跳丢失 + 硬件自检
-
-
技术栈
- Python,ZeroMQ, Protobuf